diff --git a/user_guide/libraries/database/active_record.html b/user_guide/libraries/database/active_record.html
new file mode 100644
index 0000000..8fc3b81
--- /dev/null
+++ b/user_guide/libraries/database/active_record.html
@@ -0,0 +1,610 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Active Record
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>Active Record Class</h1>
+
+
+<p>Code Igniter uses a modified version of the Active Record Database Pattern.  
+This pattern allows information to be retrieved, inserted, and updated in your database with minimal scripting. 
+In some cases only one or two lines of code are necessary to perform a database action.  
+Code Igniter does not require that each database table be its own class file.  It instead provides a more simplified interface.</p>
+
+<p>Beyond simplicity, a major benefit to using the Active Record features is that it allows you to create database independent applications, since the query syntax
+is generated by each database adapter.  It also allows for safer queries, since the values are escaped automatically by the system.</p>
+
+<p class="important"><strong>Note:</strong>  If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.</p>
+
+<br />
+
+<ul>
+<li><a href="#select">Selecting Data</a></li>
+<li><a href="#insert">Inserting Data</a></li>
+<li><a href="#update">Updating Data</a></li>
+<li><a href="#delete">Deleting Data</a></li>
+<li><a href="#chaining">Method Chaining</a></li>
+</ul>
+
+
+
+
+<a name="select">&nbsp;</a>
+<h1>Selecting Data</h1>
+
+<p>The following functions allow you to build SQL <strong>SELECT</strong> statements.</p>
+
+<p><strong>Note: If you are using PHP 5 you can use method chaining for more compact syntax. This is described at the end of the page.</strong></p>
+
+
+<h2>$this->db->get();</h2>
+
+<p>Runs the selection query and returns the result.  Can be used by itself to retrieve all records from a table:</p>
+
+<code>$query = $this->db->get('mytable');<br />
+<br />
+// Produces: SELECT * FROM mytable</code>
+
+<p>The second and third parameters enable you do set a limit and offset clause:</p>
+
+<code>$query = $this->db->get('mytable', 10, 20);<br />
+<br />
+// Produces: SELECT * FROM mytable LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code>
+
+
+
+<p>You'll notice that the above function is assigned to a variable named <kbd>$query</kbd>, which can be used to show the results:</p>
+
+<code>$query = $this->db->get('mytable');<br />
+<br />
+foreach ($query->result() as $row)<br />
+{<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
+}</code>
+
+<p>Please visit the <a href="results.html">result functions</a> page for a full discussion regarding result generation.</p>
+
+
+<h2>$this->db->getwhere();</h2>
+
+<p>Identical to the above function except that it permits you to add a "where" clause in the second parameter,
+instead of using the db->where() function:</p>
+
+<code>$query = $this->db->getwhere('mytable', array(id => $id), $limit, $offset);</code>
+
+<p>Please read the about the where function below for more information.</p>
+
+
+<h2>$this->db->select();</h2>
+
+<p>Permits you to write the SELECT portion of your query:</p>
+
+<code>
+$this->db->select('title, content, date');<br />
+<br />
+$query = $this->db->get('mytable');<br />
+<br />
+// Produces: SELECT title, content, date FROM mytable</code>
+
+<p><strong>Note: If you are selecting all (*) from a table you do not need to use this function.  When omitted, Code Igniter assumes you wish to SELECT *</strong></p>
+
+
+<h2>$this->db->from();</h2>
+
+<p>Permits you to write the FROM portion of your query:</p>
+
+<code>
+$this->db->select('title, content, date');<br />
+$this->db->from('mytable');<br />
+<br />
+$query = $this->db->get();<br />
+<br />
+// Produces: SELECT title, content, date FROM mytable</code>
+
+<p><strong>Note: As shown earlier, the FROM portion of your query can be specified in the <dfn>$this->db->get()</dfn> function, so use whichever method
+you prefer.</strong></p>
+
+<h2>$this->db->join();</h2>
+
+<p>Permits you to write the JOIN portion of your query:</p>
+
+<code>
+$this->db->select('*');<br />
+$this->db->from('blogs');<br />
+$this->db->join('comments', 'comments.id = blogs.id');<br />
+<br />
+$query = $this->db->get();<br />
+<br />
+// Produces: <br />
+// SELECT * FROM blogs<br />
+// JOIN comments ON comments.id = blogs.id<br />
+</code>
+
+<p>Multiple function calls can be made if you need several joins in one query.</p>
+
+<p>If you need something other than a natural JOIN you can specify it via the third parameter of the function.  
+Options are: left, right, outer, inner, left outer, and right outer.</p>
+
+<code>
+$this->db->join('comments', 'comments.id = blogs.id', <strong>'left'</strong>);<br />
+<br />
+// Produces: LEFT JOIN comments ON comments.id = blogs.id</code>
+
+
+
+
+
+<h2>$this->db->where();</h2>
+<p>This function enables you to set <strong>WHERE</strong> clauses using one of four methods:</p>
+
+<p class="important"><strong>Note:</strong> All values passed to this function are escaped automatically, producing safer queries.</p>
+
+<ol>
+	<li><strong>Simple key/value method:</strong>
+
+	<code>$this->db->where('name', $name);
+	<br /><br />// Produces: WHERE name = 'Joe'
+	</code>
+	
+	<p>Notice that the equal sign is added for you.</p>
+	
+	<p>If you use multiple function calls they will be chained together with <var>AND</var> between them:</p>
+	
+	<code>$this->db->where('name', $name);<br />
+	$this->db->where('title', $title);<br />
+	$this->db->where('status', $status);
+	<br /><br />// WHERE = 'Joe' AND title = 'boss' AND status = 'active'
+	</code>
+	
+
+	</li>
+	
+	<li><strong>Custom key/value method:</strong>
+	
+	<p>You can include an operator in the first parameter in order to to control the comparison:</p>
+	
+	<code>$this->db->where('name !=', $name);<br />
+	$this->db->where('id <', $id);
+	<br /><br />// Produces: WHERE name != 'Joe' AND id < 45
+	</code>
+
+
+	
+	</li>
+	<li><strong>Associative array method:</strong>
+
+
+	<code>
+	$array = array('name' => $name, 'title' => $title, 'status' => $status);<br /><br />
+	
+	$this->db->where($array);
+	<br /><br />// Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
+	</code>
+
+	<p>You can include your own operators using this method as well:</p>
+
+	<code>
+	$array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);<br /><br />
+	
+	$this->db->where($array);</code>
+
+	</li>
+		<li><strong>Custom string:</strong>
+		
+		<p>You can write your own clauses manually:</p>
+
+		<code>
+		$where = "name='Joe' AND status='boss' OR status='active'";<br /><br />
+		$this->db->where($where);</code>
+
+	</li>
+</ol>
+
+
+<h2>$this->db->orwhere();</h2>
+<p>This function is identical to the one above, except that multiple instances are joined by OR:</p>
+
+<code>
+$this->db->where('name !=', $name);<br />
+$this->db->orwhere('id >', $id);
+<br /><br />// Produces: WHERE name != 'Joe' OR id > 50
+</code>
+	
+	
+	
+
+<h2>$this->db->like();</h2>
+<p>This function enables you to generate <strong>LIKE</strong> clauses, useful for doing searches.</p>
+
+<p class="important"><strong>Note:</strong> All values passed to this function are escaped automatically.</p>
+
+
+<ol>
+	<li><strong>Simple key/value method:</strong>
+
+	<code>$this->db->like('title', $match);
+	<br /><br />// Produces: WHERE title LIKE '%match%'
+	</code>
+		
+	<p>If you use multiple function calls they will be chained together with <var>AND</var> between them:</p>
+	
+	<code>$this->db->like('title', $match);<br />
+	$this->db->like('body', $match);
+	<br /><br />// WHERE title LIKE '%match%' AND  body LIKE '%match%'
+	</code>
+	
+	</li>
+	
+	<li><strong>Associative array method:</strong>
+
+	<code>
+	$array = array('title' => $match, 'page1' => $match, 'page2' => $match);<br /><br />
+	
+	$this->db->like($array);
+	<br /><br />// WHERE title LIKE '%match%' AND  page1 LIKE '%match%' AND  page2 LIKE '%match%'
+	</code>
+
+	</li>
+</ol>
+	
+	
+<h2>$this->db->orlike();</h2>
+<p>This function is identical to the one above, except that multiple instances are joined by OR:</p>
+
+<code>
+$this->db->like('title', $match);<br />
+$this->db->orlike('body', $match);
+<br /><br />// WHERE title LIKE '%match%' OR  body LIKE '%match%'
+</code>
+
+
+
+	
+<h2>$this->db->groupby();</h2>
+
+<p>Permits you to write the GROUP BY portion of your query:</p>
+	
+<code>$this->db->groupby("title");
+<br /><br />// Produces: GROUP BY title
+</code>
+
+<p>You can also pass an array of multiple values as well:</p>
+	
+<code>$this->db->groupby(array("title", "date");
+<br /><br />// Produces: GROUP BY title, date
+</code>
+	
+		
+<h2>$this->db->having();</h2>
+
+<p>Permits you to write the HAVING portion of your query:</p>
+	
+<code>$this->db->having('user_id = 45');
+<br /><br />// Produces: HAVING 'user_id = 45'
+</code>
+	
+<p>You can also pass an array of multiple values as well:</p>
+
+
+<code>$this->db->having(array('title =' => 'My Title', 'id <' => $id));
+<br /><br />// Produces: HAVING title = 'My Title', 'id < 45'
+</code>
+
+	
+	
+<h2>$this->db->orderby();</h2>
+<p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by. 
+The second parameter lets you set the direction of the result.  Options are <kbd>asc</kbd> or <kbd>desc</kbd></p>
+	
+<code>$this->db->orderby("title", "desc");
+<br /><br />// Produces: ORDER BY title DESC
+</code>
+
+<p>You can also pass your own string in the first parameter:</p>
+	
+<code>$this->db->orderby('title desc, name asc');
+<br /><br />// Produces: ORDER BY title DESC, name ASC
+</code>
+	
+
+
+<h2>$this->db->limit();</h2>
+<p>Lets you limit the number of rows you would like returned by the query:
+
+<code>
+$this->db->limit(10);<br />
+<br />
+// Produces: LIMIT 10</code>
+
+
+<p>The second parameter lets you set a result offset.</p>
+
+<code>
+$this->db->limit(10, 20);<br />
+<br />
+// Produces: LIMIT 20, 10 (in MySQL.  Other databases have slightly different syntax)</code>
+
+
+<h2>$this->db->count_all();</h2>
+
+<p>Permits you to determine the number of rows in a particular table.  Submit the table name in the first parameter. Example:</p>
+
+<code>echo $this->db->count_all('<var>my_table</var>');<br />
+<br />
+// Produces an integer, like 25</code>
+
+
+
+	
+<a name="insert">&nbsp;</a>
+<h1>Inserting Data</h1>
+	
+<h2>$this->db->insert();</h2>
+<p>Generates an insert string based on the data you supply, and runs the query. You can either pass an
+<strong>array</strong> or an <strong>object</strong> to the function.  Here is an example using an array:</p>
+
+<code>
+$data = array(<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => $title,<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => $name,<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => $date<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
+<br />
+$this->db->insert('mytable', $data);
+<br /><br />
+// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')</code>
+
+<p>The first parameter will contain the table name, the second is an associative array of values.</p>
+
+<p>Here is an example using an object:</p>
+
+<code>
+/*<br />
+&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $title = 'My Title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $content = 'My Content';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $date = 'My Date';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;}<br />
+*/<br />
+<br />
+$object = new Myclass;<br />
+<br />
+$this->db->insert('mytable', $object);
+<br /><br />
+// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')</code>
+
+<p>The first parameter will contain the table name, the second is an associative array of values.</p>
+
+<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p>
+	
+	
+	
+
+<h2>$this->db->set();</h2>
+<p>This function enables you to set values for <dfn>inserts</dfn> or <dfn>updates</dfn>.</p>
+
+<p><strong>It can be used instead of passing a data array directly to the insert or update functions:</strong> </p>
+
+<code>$this->db->set('name', $name);
+<br />
+$this->db->insert('mytable');
+<br /><br />
+// Produces: INSERT INTO mytable (name) VALUES ('{$name}')</code>
+
+<p>If you use multiple function called they will be assembled properly based on whether you are doing an insert or an update:</p>
+
+<code>$this->db->set('name', $name);<br />
+$this->db->set('title', $title);<br />
+$this->db->set('status', $status);<br />
+$this->db->insert('mytable');
+</code>
+
+<p>You can also pass an associative array to this function:</p>
+
+<code>
+$array = array('name' => $name, 'title' => $title, 'status' => $status);<br /><br />
+
+$this->db->set($array);<br />
+$this->db->insert('mytable');
+</code>
+
+<p>Or an object:</p>
+
+
+<code>
+/*<br />
+&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $title = 'My Title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $content = 'My Content';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $date = 'My Date';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;}<br />
+*/<br />
+<br />
+$object = new Myclass;<br />
+<br />
+$this->db->set($object);<br />
+$this->db->insert('mytable');
+</code>
+
+
+	
+<a name="update">&nbsp;</a>
+<h1>Updating Data</h1>
+	
+<h2>$this->db->update();</h2>
+<p>Generates an update string and runs the query based on the data you supply.  You can pass an
+<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using
+an array:</p>
+
+<code>
+$data = array(<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => $title,<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => $name,<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => $date<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
+<br />
+$this->db->where('id', $id);<br />
+$this->db->update('mytable', $data);
+<br /><br />
+// Produces:<br />
+// UPDATE mytable <br />
+// SET title = '{$title}', name = '{$name}', date = '{$date}'<br />
+// WHERE id = $id</code>
+
+<p>Or you can supply an object:</p>
+
+<code>
+/*<br />
+&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $title = 'My Title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $content = 'My Content';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $date = 'My Date';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;}<br />
+*/<br />
+<br />
+$object = new Myclass;<br />
+<br />
+$this->db->where('id', $id);<br />
+$this->db->update('mytable', $object, $where);
+<br /><br />
+// Produces:<br />
+// UPDATE mytable <br />
+// SET title = '{$title}', name = '{$name}', date = '{$date}'<br />
+// WHERE id = $id</code>
+
+
+
+<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p>
+	
+<p>You'll notice the use of the <dfn>$this->db->where()</dfn> function, enabling you to set the WHERE clause.
+You can optionally pass this information directly into the update function as a string:</p>
+
+<code>$this->db->update('mytable', $data, "id = 4");</code>
+
+<p>Or as an array:</p>
+
+<code>$this->db->update('mytable', $data, array('id' => $id));</code>
+	
+<p>You may also use the <dfn>$this->db->set()</dfn> function described above when performing updates.</p>
+
+	
+<a name="delete">&nbsp;</a>
+<h1>Deleting Data</h1>
+
+
+	
+<h2>$this->db->delete();</h2>
+<p>Generates a delete SQL string and runs the query.</p>
+
+<code>
+$this->db->delete('mytable', array('id', $id));
+<br /><br />
+// Produces:<br />
+// DELETE FROM mytable <br />
+// WHERE id = $id</code>
+
+<p>The first parameter is the table name, the second is the where clause. You can also use the <dfn>where()</dfn> or <dfn>orwhere()</dfn> functions instead of passing 
+the data to the second parameter of the function:
+
+<code>
+$this->db->where('id', $id);<br />
+$this->db->delete('mytable');
+<br /><br />
+// Produces:<br />
+// DELETE FROM mytable <br />
+// WHERE id = $id</code>
+
+<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p>
+
+
+<a name="chaining">&nbsp;</a>
+<h1>Method Chaining</h1>
+
+<p>Method chaining allows you to simplify your syntax by connecting multiple functions.  Consider this example:</p>
+
+<code>
+<dfn>$this->db</dfn><kbd>-></kbd><var>select</var>('title')<kbd>-></kbd><var>from</var>('mytable')<kbd>-></kbd><var>where</var>('id', $id)<kbd>-></kbd><var>limit</var>(10, 20);<br />
+<br />
+$query = $this->db->get();</code>
+
+<p class="important"><strong>Note:</strong> Method chaining only works with PHP 5.</p>
+
+
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="results.html">Query Results</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="fields.html">Field Metadata</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/call_function.html b/user_guide/libraries/database/call_function.html
new file mode 100644
index 0000000..9c860a4
--- /dev/null
+++ b/user_guide/libraries/database/call_function.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Custom Function Calls
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+<h1>Custom Function Calls</h1>
+
+<h2>$this->db->call_function();</h2>
+
+<p>This function enables you to call PHP database functions that are not natively included in Code Igniter, in a platform independent manner. 
+For example, lets say you want to call the <dfn>mysql_get_client_info()</dfn> function, which is <strong>not</strong> natively supported 
+by Code Igniter.  You could do so like this:
+</p>
+
+<code>$this->db->call_function('<var>get_client_info</var>');</code>
+
+<p>You must supply the name of the function, <strong>without</strong> the <var>mysql_</var> prefix, in the first parameter.  The prefix is added
+automatically based on which database driver is currently being used.  This permits you to run the same function on different database platforms.  
+Obviously not all function calls are identical between platforms, so there are limits to how useful this function can be in terms of portability.</p>
+
+<p>Any parameters needed by the function you are calling will be added to the second parameter.</p>
+
+<code>$this->db->call_function('<var>some_function</var>', $param1, $param2, etc..);</code>
+
+
+<p>Often, you will either need to supply a database connection ID or a database result ID.  The connection ID can be accessed using:</p>
+
+<code>$this->db->conn_id;</code>
+
+<p>The result ID can be accessed from within your result object, like this:</p>
+
+<code>$query = $this->db->query("SOME QUERY");<br />
+<br />
+<var>$query->result_id;</var></code>
+
+
+
+
+
+
+
+
+
+
+
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="fields.html">Field MetaData</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="../email.html">Email Class</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/configuration.html b/user_guide/libraries/database/configuration.html
new file mode 100644
index 0000000..4b7d2a8
--- /dev/null
+++ b/user_guide/libraries/database/configuration.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Configuration
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>Database Configuration</h1>
+
+<p>Code Igniter has a config file that lets you store your database connection values (username, password, database name, etc.).  
+The config file is located at:
+
+<p><kbd>application/config/database.php</kbd></p>
+
+<p>The config settings are stored in a multi-dimensional array with this prototype:</p>
+
+<code>$db['default']['hostname'] = "localhost";<br />
+$db['default']['username'] = "root";<br />
+$db['default']['password'] = "";<br />
+$db['default']['database'] = "database_name";<br />
+$db['default']['dbdriver'] = "mysql";<br />
+$db['default']['dbprefix'] = "";<br />
+$db['default']['pconnect'] = TRUE;<br />
+$db['default']['db_debug'] = FALSE;<br />
+$db['default']['active_r'] = TRUE;</code>
+
+<p>The reason we use a multi-dimensional array rather than a more simple one is to permit you to optionally store 
+multiple sets of connection values.  If, for example,  you run multiple environments (development, production, test, etc.) 
+under a single installation, you can set up a connection group for each, then switch between groups as needed.
+For example, to set up a "test" environment you would do this:</p>
+
+<code>$db['test']['hostname'] = "localhost";<br />
+$db['test']['username'] = "root";<br />
+$db['test']['password'] = "";<br />
+$db['test']['database'] = "database_name";<br />
+$db['test']['dbdriver'] = "mysql";<br />
+$db['test']['dbprefix'] = "";<br />
+$db['test']['pconnect'] = TRUE;<br />
+$db['test']['db_debug'] = FALSE;<br />
+$db['test']['active_r'] = TRUE;</code>
+
+ 
+<p>Then, to globally tell the system to use that group you would set this variable located in the config file:</p>
+
+<code>$active_group = "test";</code>
+
+<p>Note: The name "test" is arbitrary.  It can be anything you want. By default we've used the word "default"
+for the primary connection, but it too can be renamed to something more relevant to your project.</p>
+
+<h3>Explanation of Values:</h3>
+
+<ul>
+<li><strong>hostname</strong> - The hostname of your database server. Often this is "localhost".</li> 
+<li><strong>username</strong> - The username used to connect to the database.</li> 
+<li><strong>password</strong> - The password used to connect to the database.</li> 
+<li><strong>database</strong> - The name of the database you want to connect to.</li> 
+<li><strong>dbdriver</strong> - The database type. ie: mysql, postgre, obdc, etc. Must be specified in lower case.</li> 
+<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries.  This permits multiple Code Igniter installations to share one database.</li> 
+<li><strong>pconnect</strong> - TRUE/FALSE (boolean) - Whether to use a persistent connection.</li> 
+<li><strong>db_debug</strong> - TRUE/FALSE (boolean) - Whether database errors should be displayed.</li> 
+<li><strong>active_r</strong> - TRUE/FALSE (boolean) - Whether to load the <a href="active_record.html">Active Record Class</a>. If you are not using the active record class you can have it omitted when the database classes are initialized in order to utilize less resources.</li> 
+</ul>
+
+<p class="important"><strong>Note:</strong> Depending on what database platform you are using (MySQL, Postgre, etc.)
+not all values will be needed.  For example, when using SQLite you will not need to supply a username or password, and
+the database name will be the path to your database file. The information above assumes you are using MySQL.</p>
+
+
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="examples.html">Quck Start: Usage Examples</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="connecting.html">Connecting to your Database</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/connecting.html b/user_guide/libraries/database/connecting.html
new file mode 100644
index 0000000..7bf93c3
--- /dev/null
+++ b/user_guide/libraries/database/connecting.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Connecting
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>Connecting to your Database</h1>
+
+<p>There are two ways to connect to a database:</p>
+
+<h2>Automatically Connecting</h2>
+
+<p>The "auto connect" feature will load and instantiate the database class with every page load. 
+To enable "auto connecting", add the word <var>database</var> to the core array, as indicated in the following file:</p>
+
+<p><kbd>application/config/autoload.php</kbd></p>
+
+<h2>Manually Connecting</h2>
+
+<p>If only some of your pages require database connectivity you can manually connect to your database by adding this 
+line of code in any function where it is needed, or in your class constructor to make the database 
+available globally in that class.</p>
+
+<code>$this->load->database();</code>
+
+<p class="important">If the above function does <strong>not</strong> contain any information in the first parameter it will connect 
+to the group specified in your database config file. For most people, this is the preferred method of use.</p>
+
+
+<p>The first parameter of this function can <strong>optionally</strong> be used to specify a particular database group
+from your config file, or you can even submit connection values for a database that is not specified in your config file.
+Examples:</p>
+
+<p>To choose a specific group from your config file you can do this:</p>
+
+<code>$this->load->database('<samp>group_name</samp>');</code>
+
+<p>Where <samp>group_name</samp> is the name of the connection group from your config file.</p>
+
+
+<p>To connect manually to a desired database you can pass an array of values:</p>
+
+<code>$config['hostname'] = "localhost";<br />
+$config['username'] = "myusername";<br />
+$config['password'] = "mypassword";<br />
+$config['database'] = "mydatabase";<br />
+$config['dbdriver'] = "mysql";<br />
+$config['dbprefix'] = "";<br />
+$config['pconnect'] = FALSE;<br />
+$config['db_debug'] = TRUE;<br />
+$config['active_r'] = TRUE;<br />
+<br />
+$this->load->database(<samp>$config</samp>);</code>
+
+<p>For information on each of these values please see the <a href="configuration.html">configuration page</a>.
+
+<p>Or you can submit your database values as a Data Source Name. DSNs must have this prototype:
+
+<code>$dsn = 'dbdriver://username:password@hostname/database';<br />
+<br />
+$this->load->database('<samp>$dsn</samp>');</code>
+
+<p>Note that if you use a DSN you will not be able to specify some of the default values like you can if you use a connection array.</p>
+
+
+
+
+<h2>Connecting to Multiple Databases</h2>
+
+<p>If you need to connect to more than one database simultaneously you can do so as follows:</p>
+
+
+<code>$DB1 = $this->load->database('group_one', TRUE);<br />
+$DB2 = $this->load->database('group_two', TRUE);
+</code>
+
+<p>Note: Change the words "group_one" and "group_two" to the specific group names you are connecting to (or 
+you can pass the connection values as indicated above).</p>
+
+<p>By setting the second parameter to TRUE (boolean) the function will return the database object.</p>
+
+<div class="important">
+<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide.  In other words, rather than issuing commands with:</p>
+
+<p>$this->db->query();<br />$this->db->result();<br /> etc...</p>
+
+<p>You will instead use:</p>
+
+<p>$DB1->query();<br />$DB1->result();<br /> etc...</p>
+
+</div>
+
+
+
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="configuration.html">Database Configuration</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/examples.html b/user_guide/libraries/database/examples.html
new file mode 100644
index 0000000..e738ba8
--- /dev/null
+++ b/user_guide/libraries/database/examples.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Database Example Code
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>Database Quick Start: Example Code</h1>
+
+<p>The following page contains example code showing how the database class is used.  For complete details please
+read the individual pages describing each function.</p>
+
+
+<h2>Initializing the Database Class</h2>
+
+<p>The following code loads and initializes the database class based on your <a href="configuration.html">configuration</a> settings:</p>
+
+<code>$this->load->database();</code>
+
+<p>Once loaded the class is ready to be used as described below.</p>
+
+<p>Note: If all your pages require database access you can connect automatically.  See the <a href="connecting.html">connecting</a> page for details.</p>
+
+
+<h2>Standard Query With Multiple Results (Object Version)</h2>
+
+<code>$query = $this->db->query('SELECT name, title, email FROM my_table');<br />
+<br />
+foreach ($query->result() as $row)<br />
+{<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row->email;<br />
+}<br />
+<br />
+echo 'Total Results: ' . $query->num_rows();
+</code>
+
+<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>.  Example:  $row->title</p>
+
+
+<h2>Standard Query With Multiple Results (Array Version)</h2>
+
+<code>$query = $this->db->query('SELECT name, title, email FROM my_table');<br />
+<br />
+foreach ($query->result_array() as $row)<br />
+{<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row['title'];<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row['name'];<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row['email'];<br />
+}</code>
+
+<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes.  Example:  $row['title']</p>
+
+
+<h2>Standard Query With Single Result</h2>
+
+<code>$query = $this->db->query('SELECT name FROM my_table LIMIT 1');<br />
+<br />
+$row = $query->row();<br />
+echo $row->name;<br />
+</code>
+
+
+<h2>Standard Insert</h2>
+
+<code>
+$sql = "INSERT INTO mytable (title, name) <br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";<br />
+<br />
+$this->db->query($sql);<br />
+<br />
+echo $this->db->affected_rows();
+</code>
+
+
+
+
+<h2>Active Record Query</h2>
+
+<p>The <a href="active_record.html">Active Record Pattern</a> gives you a simplified means of retrieving data:</p>
+
+<code>
+$query = $this->db->get('table_name');<br />
+<br />
+foreach ($query->result() as $row)<br />
+{<br />
+&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
+}</code>
+	
+
+<h2>Active Record Insert</h2>
+
+<code>
+$data = array(<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => $title,<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => $name,<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => $date<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
+<br />
+$this->db->insert('mytable', $data);
+<br /><br />
+// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')</code>
+
+
+
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="index.html">Database Class</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="configuration.html">Database Configuration</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/fields.html b/user_guide/libraries/database/fields.html
new file mode 100644
index 0000000..dd2def9
--- /dev/null
+++ b/user_guide/libraries/database/fields.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Field Names
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>Field Data</h1>
+
+
+<h2>Retrieving Field Names</h2>
+<p>Sometimes it's helpful to gather the field names.</p>
+
+<h2>$this->db->field_names();</h2>
+<p>Returns an array containing the field names.  You must supply the table name to the function:</p>
+
+<code>
+$fields = $this->db->field_names('table_name');<br /><br />
+
+foreach ($fields as $field)<br />
+{<br />
+&nbsp;&nbsp;&nbsp;echo $field;<br />
+}
+</code>
+
+
+
+<h2>Retrieving Field MetaData</h2>
+<p>Sometimes it's helpful to gather the field names or other metadata, like the column type, max length, etc.</p>
+
+<h2>$this->db->field_data();</h2>
+<p>Returns an array of objects containing field information.</p>
+
+<p class="important">Note: Not all databases provide meta-data.</p>
+
+<p>Usage example:</p>
+
+<code>
+$fields = $this->db->field_data('table_name');<br /><br />
+
+foreach ($fields as $field)<br />
+{<br />
+&nbsp;&nbsp;&nbsp;echo $field->name;<br />
+&nbsp;&nbsp;&nbsp;echo $field->type;<br />
+&nbsp;&nbsp;&nbsp;echo $field->max_length;<br />
+&nbsp;&nbsp;&nbsp;echo $field->primary_key;<br />
+}
+</code>
+
+<p>If you have run a query already you can use the result oject instead of supplying the table name:</p>
+
+<code>
+$query = $this->db->query("YOUR QUERY");<br />
+$fields = $query->field_data();
+</code>
+
+
+<p>The following data is available from this function if supported by your database:</p>
+
+<ul>
+<li>name - column name</li>
+<li>max_length - maximum length of the column</li>
+<li>primary_key - 1 if the column is a primary key</li>
+<li>type - the type of the column</li>
+</ul>
+
+
+
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="results.html">Query Results</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="table_data.html">Table MetaData</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/index.html b/user_guide/libraries/database/index.html
new file mode 100644
index 0000000..a8e7c8e
--- /dev/null
+++ b/user_guide/libraries/database/index.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+Database Library
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>The Database Class</h1>
+
+<p>Code Igniter comes with a full-featured and very fast abstracted database class that supports both traditional
+structures and Active Record patterns. The database functions offer clear, simple syntax.</p>
+
+	<ul>
+		<li><a href="examples.html">Quick Start:  Usage Examples</a></li>
+		<li><a href="configuration.html">Database Configuration</a></li>
+		<li><a href="connecting.html">Connecting to Your Database</a></li>
+		<li><a href="queries.html">Queries</a></li>
+		<li><a href="results.html">Query Results</a></li>
+		<li><a href="active_record.html">Active Record Class</a></li>
+		<li><a href="fields.html">Field MetaData</a></li>
+		<li><a href="table_data.html">Table MetaData</a></li>
+		<li><a href="call_function.html">Custom Function Calls</a></li>
+	</ul>
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="../config.html">Config Class</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="examples.html">Quick Start: Usage Examples</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/queries.html b/user_guide/libraries/database/queries.html
new file mode 100644
index 0000000..57fd916
--- /dev/null
+++ b/user_guide/libraries/database/queries.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Queries
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+<h1>Queries</h1>
+
+<p>To submit a query, use the following function:</p>
+
+<code>$this->db->query('YOUR QUERY HERE');</code>
+
+<p>The <dfn>query()</dfn> function returns a database result <strong>object</strong> 
+which you can use to <a href="results.html">show your results</a>. You will typically assign the query to your own variable, like this:</p>
+
+<code><var>$query</var> = $this->db->query('YOUR QUERY HERE');</code>
+
+
+<h2>Escaping Queries</h2>
+
+<p>It's a very good security practice to escape your data before sumbiting it into your database. 
+Code Igniter has two functions that help you do this:</p>
+
+<ol>
+</li>
+<li><strong>$this->db->escape()</strong> This function determines the data type so that it 
+can escape only string data.  It also automatically adds single quotes around the data so you don't have to:
+
+<code>$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";</code>
+
+
+<li><strong>$this->db->escape_str()</strong>  This function escapes the data passed to it, regardless of type.  
+Most of the time you'll use the above function rather then this one. Use the function like this:
+
+<code>$sql = "INSERT INTO table (title) VALUES('".$this->db->escape_str($title)."')";</code>
+
+
+</li>
+</ol>
+
+
+
+<h1><br />Query Bindings</h1>
+
+
+<p>Bindings enable you to simplify your query syntax by letting the system put the queries together for you. Consider the following example:</p>
+
+<code>
+$sql = "SELECT * FROM some_table WHERE id = <var>?</var> AND status = <var>?</var> AND author = <var>?</var>";
+<br /><br />
+$this->db->query($sql, array(3, 'live', 'Rick'));
+</code>
+
+<p>The question marks in the query are automatically replaced with the values in the array in the second parameter of the query function.</p>
+<p class="important">The secondary benefit of using binds is that the values are automatically escaped, producing safer queries.  You don't have to remember to manually escape data; the engine does it automatically for you.</p>
+
+
+
+<h1><br />Query Helper Functions</h1>
+
+
+<h2>$this->db->last_query();</h2>
+
+<p>Returns the last query that was run (the query string, not the result).  Example:</p>
+
+<code>$str = $this->db->last_query();<br />
+<br />
+// Produces:  SELECT * FROM sometable....
+</code>
+
+
+<p>The following two functions help simplify the process of writing database INSERTs and UPDATEs.</p>
+
+
+<h2>$this->db->insert_string(); </h2>
+<p>This function simplifies the process of writing database inserts. It returns a correctly formatted SQL insert string. Example:</p>
+
+<code>$data = array('name' => $name, 'email' => $email, 'url' => $url);<br />
+<br />
+$str = $this->db->insert_string('table_name', $data);
+</code>
+
+<p>The first parameter is the table name, the second is an associative array with the data to be inserted.  The above example produces:</p>
+<code>INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@your-site.com', 'www.your-site.com')</code>
+
+
+
+<h2>$this->db->update_string(); </h2>
+<p>This function simplifies the process of writing database updates. It returns a correctly formatted SQL update string. Example:</p>
+
+<code>$data = array('name' => $name, 'email' => $email, 'url' => $url);<br />
+<br />
+$where = "author_id = 1 AND status = 'active'";
+<br /><br />
+$str = $this->db->update_string('table_name', $data, $where);
+</code>
+
+<p>The first parameter is the table name, the second is an associative array with the data to be inserted, and the third parameter is the "where" clause. The above example produces:</p>
+<code> UPDATE exp_weblog SET name = 'Rick', email = 'rick@your-site.com', url = 'www.your-site.com' WHERE author_id = 1 AND status = 'active'</code>
+
+	
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="connecting.html">Connecting to your Database</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="results.html">Query Results</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/results.html b/user_guide/libraries/database/results.html
new file mode 100644
index 0000000..7e6b95d
--- /dev/null
+++ b/user_guide/libraries/database/results.html
@@ -0,0 +1,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Query Results
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+
+
+<h1>Query Results</h1>
+
+
+<p>There are several ways to generate query results:</p>
+
+	<h2>result()</h2>
+	
+	<p>This function returns the query result as an array of <strong>objects</strong>, or <strong>FALSE</strong> on failure.
+	
+	Typically you'll use this in a foreach loop, like this:</p>
+	
+	<code>
+	$query = $this->db->query("YOUR QUERY");<br />
+	<br />
+	foreach ($query->result() as $row)<br />
+	{<br />
+	&nbsp;&nbsp;&nbsp;echo $row->title;<br />
+	&nbsp;&nbsp;&nbsp;echo $row->name;<br />
+	&nbsp;&nbsp;&nbsp;echo $row->body;<br />
+	}</code>
+
+	<p>If you run queries that might <strong>not</strong> produce a result, you are encouraged to test the result first:</p>
+	
+	<code>
+	$query = $this->db->query("YOUR QUERY");<br />
+	<br />
+	if ($query->num_rows() > 0)<br />
+	{<br />
+	&nbsp;&nbsp;&nbsp;foreach ($query->result() as $row)<br />
+	&nbsp;&nbsp;&nbsp;{<br />
+	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
+	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br />
+	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->body;<br />
+	&nbsp;&nbsp;&nbsp;}<br />
+	}
+	</code>
+
+	<h2>result_array()</h2>
+	
+	<p>This function returns the query result as a pure array, or FALSE on failure.  Typically you'll use this in a foreach loop, like this:</p>
+	<code>
+	$query = $this->db->query("YOUR QUERY");<br />
+	<br />
+	foreach ($query->result_array() as $row)<br />
+	{<br />
+	&nbsp;&nbsp;&nbsp;echo $row['title'];<br />
+	&nbsp;&nbsp;&nbsp;echo $row['name'];<br />
+	&nbsp;&nbsp;&nbsp;echo $row['body'];<br />
+	}</code>
+	
+
+	<h2>row()</h2>
+	
+	<p>This function returns a single result row.  If your query has more than one row, it returns only the first row.  
+	The result is returned as an <strong>object</strong>.  Here's a usage example:</p>
+	<code>
+	$query = $this->db->query("YOUR QUERY");<br />
+	<br />
+	if ($query->num_rows() > 0)<br />
+	{<br />
+	&nbsp;&nbsp;&nbsp;$row = $query->row();
+	<br /><br />
+	&nbsp;&nbsp;&nbsp;echo $row->title;<br />
+	&nbsp;&nbsp;&nbsp;echo $row->name;<br />
+	&nbsp;&nbsp;&nbsp;echo $row->body;<br />
+	}
+	</code>
+	
+	<p>If you want a specific row returned you can submit the row number as a digit in the first parameter:
+	
+	<code>$row = $query->row(<dfn>5</dfn>);</code>
+
+
+	<h2>row_array()</h2>
+
+	<p>Identical to the above <var>row()</var> function, except it returns an array.  Example:</p>
+
+	<code>
+	$query = $this->db->query("YOUR QUERY");<br />
+	<br />
+	if ($query->num_rows() > 0)<br />
+	{<br />
+	&nbsp;&nbsp;&nbsp;$row = $query->row_array();
+	<br /><br />
+	&nbsp;&nbsp;&nbsp;echo $row['title'];<br />
+	&nbsp;&nbsp;&nbsp;echo $row['name'];<br />
+	&nbsp;&nbsp;&nbsp;echo $row['body'];<br />
+	}
+	</code>
+
+	
+	<p>If you want a specific row returned you can submit the row number as a digit in the first parameter:
+	
+	<code>$row = $query->row_array(<dfn>5</dfn>);</code>
+	
+ 
+ 	<p>In addition, you can walk forward/backwards/first/last through your results using these variations:</p>
+
+<p>
+	<strong>$row = $query->first_row()</strong><br />
+	<strong>$row = $query->last_row()</strong><br />
+	<strong>$row = $query->next_row()</strong><br />
+	<strong>$row = $query->previous_row()</strong>
+</p>
+
+<p>By default they return an object unless you put the word "array" in the parameter:</p>
+
+<p>
+	<strong>$row = $query->first_row('array')</strong><br />
+	<strong>$row = $query->last_row('array')</strong><br />
+	<strong>$row = $query->next_row('array')</strong><br />
+	<strong>$row = $query->previous_row('array')</strong>
+</p>
+
+
+<h1><br />Query Result Helpers</h1>
+
+<p>The following functions provide useful information when dealing with query results.</p>
+
+<h2>$query->num_rows()</h2>
+<p>The number of rows returned by the query. Note:  <dfn>$query</dfn> is the variable that the query was assigned to:</p>
+
+<code>$query = $this->db->query('SELECT * FROM my_table');<br /><br />
+echo $query->num_rows();
+</code>
+
+<h2>$query->num_fields()</h2>
+<p>The number of FIELDS returned by the query.  Make sure to call the function using your query result object:</p>
+
+<code>$query = $this->db->query('SELECT * FROM my_table');<br /><br />
+echo $query->num_fields();
+</code>
+
+
+<h2>$this->db->insert_id()</h2>
+<p>The insert ID number when performing database inserts.</p>
+
+<h2>$this->db->affected_rows()</h2>
+<p>Displays the number of affected rows, when doing "write" type queries (insert, update, etc.).</p>
+</p>Note:  In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the
+correct number of affected rows.  By default this hack is enabled but it can be turned off in the database driver file.</p>
+
+
+<h2>$this->db->version()</h2>
+<p>Outputs the database version you are running:</p>
+
+<code>echo $this->db->version();</code>
+
+
+
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="active_record.html">Active Record Pattern</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/user_guide/libraries/database/table_data.html b/user_guide/libraries/database/table_data.html
new file mode 100644
index 0000000..7d340d4
--- /dev/null
+++ b/user_guide/libraries/database/table_data.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+
+<title>Code Igniter User Guide</title>
+
+<style type='text/css' media='all'>@import url('../../userguide.css');</style>
+<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />
+
+<script type="text/javascript" src="../../scripts/nav.js"></script>
+<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
+<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
+<script type="text/javascript">
+window.onload = function() {
+	myHeight = new fx.Height('nav', {duration: 400}); 
+	myHeight.hide();
+}
+</script>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv='expires' content='-1' />
+<meta http-equiv= 'pragma' content='no-cache' />
+<meta name='robots' content='all' />
+<meta name='author' content='Rick Ellis' />
+<meta name='description' content='Code Igniter User Guide' />
+
+</head>
+<body>
+
+<!-- START NAVIGATION -->
+<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
+<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
+<div id="masthead">
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
+<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
+</tr>
+</table>
+</div>
+<!-- END NAVIGATION -->
+
+
+<!-- START BREADCRUMB -->
+<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
+<tr>
+<td id="breadcrumb">
+<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
+<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
+<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
+Table Data
+</td>
+<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
+</tr>
+</table>
+<!-- END BREADCRUMB -->
+
+
+<br clear="all" />
+
+
+<!-- START CONTENT -->
+<div id="content">
+
+<h1>Table Data</h1>
+
+<p>These functions let you fetch table information.</p>
+
+<h2>$this->db->tables();</h2>
+
+<p>Returns an array containing the names of all the tables in the database you are currently connected to.  Example:</p>
+
+<code>$tables = $this->db->tables()<br />
+<br />
+foreach ($tables as $table)<br />
+{<br />
+&nbsp;&nbsp; echo $table;<br />
+}
+</code>
+
+
+<h2>$this->db->table_exists();</h2>
+
+<p>Sometimes it's helpful to know whether a particular table exists before running an operation on it.
+Returns a boolean TRUE/FALSE.  Usage example:</p>
+
+<code>
+if ($this->db->table_exists('table_name'))<br />
+{<br />
+&nbsp;&nbsp; // some code...<br />
+}
+</code>
+
+<p>Note:  Replace <em>table_name</em> with the name of the table you are looking for.</p>
+
+
+
+	
+
+</div>
+<!-- END CONTENT -->
+
+
+<div id="footer">
+<p>
+Previous Topic:&nbsp;&nbsp;<a href="fields.html">Field MetaData</a>
+&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
+Next Topic:&nbsp;&nbsp;<a href="../email.html">Email Class</a>
+<p>
+<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file
